/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejb.dao;

import entidades.TipoUsuario;
import entidades.Usuario;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author ribadas
 */
@Stateless
public class UsuarioDAO extends GenericoDAO<Usuario> implements UsuarioDAORemote, UsuarioDAOLocal {

    public Usuario buscarPorLogin(String login) {
        Query q = em.createQuery("SELECT object(u) FROM Usuario AS u " +
                                 "  WHERE u.login = :login");
        q.setParameter("login", login);

        List<Usuario> resultados = q.getResultList();

        if (resultados ==null) {
            return null;  // No encontrado
        }
        else if (resultados.size() != 1){
            return null; // No encontrado
        }
        else {
            return resultados.get(0);  // Devuelve el encontrado
        }
    }

    public List<Usuario> buscarPorTipo(TipoUsuario tipo) {
        Query q = em.createQuery("SELECT object(u) FROM Usuario as u "+
                                 "  WHERE u.tipo = :tipo");
        q.setParameter("tipo", tipo);
        return q.getResultList();      
    }

    public List<Usuario> buscarTodos() {
        Query q = em.createQuery("SELECT object(u) FROM Usuario as u");
        return q.getResultList();
    }

    public int contador() {
        Query q = em.createQuery("SELECT count(u) FROM Usuario as u");
        return q.getFirstResult();
    }


    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")


}
